import axios from 'axios'

const API_BASE = process.env.VUE_APP_API_BASE || 'http://localhost:8891/api'

// 创建axios实例
const apkAPI = axios.create({
  baseURL: API_BASE,
  timeout: 300000 // 5分钟超时，适合大文件上传
})

// 请求拦截器 - 添加token
apkAPI.interceptors.request.use(config => {
  const token = localStorage.getItem('token')
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
})

// 响应拦截器 - 处理错误
apkAPI.interceptors.response.use(
  response => response,
  error => {
    if (error.response?.status === 401) {
      // token过期，跳转到登录页
      localStorage.removeItem('token')
      window.location.href = '/login'
    }
    return Promise.reject(error)
  }
)

export default {
  // 公共接口
  
  // 获取最新APK版本
  getLatestAPK(game = 'default') {
    return apkAPI.get('/apk/latest', { params: { game } })
  },

  // 管理员接口

  // 上传APK（移除onProgress，使用WebSocket监听真实进度）
  uploadAPK(formData) {
    return apkAPI.post('/admin/apk/upload', formData, {
      headers: {
        'Content-Type': 'multipart/form-data'
      },
      timeout: 600000 // 单独为上传设置10分钟超时
    })
  },

  // 获取APK列表
  getAPKList(params = {}) {
    const defaultParams = {
      page: 1,
      page_size: 10
    }
    return apkAPI.get('/admin/apk/list', { 
      params: { ...defaultParams, ...params } 
    })
  },

  // 获取单个APK信息
  getAPK(id) {
    return apkAPI.get(`/admin/apk/${id}`)
  },

  // 更新APK信息
  updateAPK(id, data) {
    return apkAPI.put(`/admin/apk/${id}`, data)
  },

  // 删除APK
  deleteAPK(id) {
    return apkAPI.delete(`/admin/apk/${id}`)
  },

  // 切换APK状态
  toggleAPKStatus(id) {
    return apkAPI.post(`/admin/apk/${id}/toggle`)
  }
}